一、利用数组的slice方法

[].slice.call(arguments);

原理:Array.prototype.slice的实现原理

Array.prototype.slice=function(start,end){
    var result=new Array();
    start=start||0;
    end=end||this.length;//在此处利用call改变this,this变成arguments
    for(var i=start;i<end;i++;){
        result.push(this[i]);
    }
    return result;
}

二、利用ES6新增的Array.from(),此方法可以将类数组和可遍历(具有iterator接口)对象转换为数组

var args=Array.from(arguments);

三、利用扩展运算符(...),此方法是利用扩展运算符能将数组转换为用逗号分隔的参数序列

var args=[...arguments];

Mrs_nn
0 声望1 粉丝